package com.lvy.hczn.transmit.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lvy.hczn.front.common.core.domain.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 仓库库存明细表
 *
 * @author yw
 * @date 2023-08-31 17:05:47
 **/
@Data
@TableName("sc_depot_sku_detail")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "仓库库存明细表")
public class DepotSkuDetail extends BaseModel<DepotSkuDetail> {

    @ApiModelProperty(value = "商品编码")
    @TableField(value = "product_id")
    private String spuCode;

    @ApiModelProperty(value = "sku")
    @TableField(value = "sku")
    private String skuCode;

    @ApiModelProperty(value = "仓库编码")
    @TableField(value = "depot_no")
    private String warehouseCode;

    @ApiModelProperty(value = "修改时间")
    private Date lastUpdateTime;

    @ApiModelProperty(value = "现有库存")
    private Integer stock;

    @ApiModelProperty(value = "生厂商id")
    private String producerId;

    @ApiModelProperty(value = "生产日期")
    @TableField(value = "producer_date")
    private Date productDate;

    @ApiModelProperty(value = "保质期")
    private Integer warrantyDate;

    @ApiModelProperty(value = "商品重量")
    @TableField(value = "heavy")
    private BigDecimal weight;

    @ApiModelProperty(value = "商品名称")
    private String productName;

    @ApiModelProperty(value = "销售单位；1件、2斤、3克")
    @TableField(value = "sale_unit")
    private String unit;

    @ApiModelProperty(value = "商品规格")
    @TableField(value = "specification")
    private String specCode;

    @ApiModelProperty(value = "报损日")
    private Date reportLossDate;

    @ApiModelProperty(value = "临期日")
    private Date dueDate;

    @ApiModelProperty(value = "临期提醒日")
    private Date dueReminderDate;

    @ApiModelProperty(value = "到期日")
    private Date expireDate;

    @ApiModelProperty(value = "临期状态 0未临期 1临期提醒 2已临期")
    private Integer dueStatus;

    @ApiModelProperty(value = "报损状态 0未报损 1已报损")
    private Integer reportLossStatus;

    @ApiModelProperty(value = "报损量")
    @TableField(value = "report_loss_stock")
    private Integer quantity;

    @ApiModelProperty(value = "初始报损量")
    private Integer initialReportLossStock;

    @ApiModelProperty(value = "版本号")
    private Integer versionNumber;

    @TableField(exist = false)
    private String spuId;
}
